#include<bits/stdc++.h>
using namespace std;

int n, x, m;
int que[10005], head = 1, tail = 0; // 定义一个数组作为队列，head和tail分别表示队列的头部和尾部

int main(){
	cin >> n; // 输入操作的次数
	while(n--){
		cin >> x; // 输入操作编号
		switch (x){
			case 1:{
				cin >> m;
				que[++tail] = m; // 将m加入队列的尾部
				break;
			}
			case 2:{
				if(head > tail) cout << "ERR_CANNOT_POP" << '\n'; // 队列为空，无法执行出队操作
				else head++; // 头部指针向后移动一位，表示执行出队操作
				break;
			}
			case 3:{
				if(head > tail) cout << "ERR_CANNOT_QUERY" << '\n'; // 队列为空，无法执行查询操作
				else cout << que[head] << '\n'; // 输出队列的头部元素
				break;
			}
			case 4:{
				cout << tail - head + 1 << '\n'; // 输出队列中的元素个数
				break;
			}
		}
	}
	return 0;
}
